package blackberry.util;

import net.rim.device.api.ui.Font;

public class DjFont {
	
	private static final int CHALLENGE_COUNT = 70;

	/**
	 * 원하는 문자열의 Width값을 입력하면 그에 맞는 font의 height를 찾아준다.  
	 * @param stringWidth 원하는 Width값
	 * @param string stringWidth안에 들어갈 문자소스
	 * @param font 계산에 사용될 폰트
	 */
	public static int getFontHeight(String string, int stringWidth, Font font){
		int initialHeight = font.getHeight();
		if (font.getAdvance(string) <= stringWidth) {
			for (int i = 0; i < CHALLENGE_COUNT; i++){
				if (font.derive(Font.PLAIN, initialHeight + i).getAdvance(string) > stringWidth)
					return initialHeight + i - 1;
			}
		} else {
			for (int i = 0; i < CHALLENGE_COUNT; i++){
				if (font.derive(Font.PLAIN, initialHeight - i).getAdvance(string) < stringWidth)
					return initialHeight - i;
			}
		}
		return initialHeight;
	}
}

